/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jjrealestatevisitor;

import jjrealestatevisitor.structure.*;

/**
 *
 * @author jochemsiegel
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        House house1 = new House("1098TG",14,"3");
        Room room1 = new Room(5,5,"Woonkamer");
        room1.addRoomItem(new RoomItem("openHaard"));

        Room room2 = new Room(2,1,"WC");
        room2.addRoomItem(new RoomItem("toilet"));

        Room room3 = new Room(3,2,"Slaapkamer1");
        Room room4 = new Room(3,3,"Slaapkamer2");
        Room room5 = new Room(2,2,"BadKamer");
        room5.addRoomItem(new RoomItem("ligBad"));

        Room room6 = new Room(5,5,"Zolder");
        room6.addRoomItem(new RoomItem("Dakkapel"));
        room6.addRoomItem(new RoomItem("CV"));
        house1.addRoom(room1);
        house1.addRoom(room2);
        house1.addRoom(room3);
        house1.addRoom(room4);
        house1.addRoom(room5);
        house1.addRoom(room6);


        House house2 = new House("7231OG",89,"II");
        Room room7 = new Room(5,5,"Woonkamer");
        room7.addRoomItem(new RoomItem("openHaard"));

        Room room8 = new Room(2,1,"WC");
        room8.addRoomItem(new RoomItem("toilet"));

        Room room9 = new Room(3,2,"Slaapkamer1");
        Room room10 = new Room(2,2,"BadKamer");
        room10.addRoomItem(new RoomItem("douche"));

        Room room11 = new Room(5,5,"Zolder");
        room11.addRoomItem(new RoomItem("CV"));

        house2.addRoom(room7);
        house2.addRoom(room8);
        house2.addRoom(room9);
        house2.addRoom(room10);
        house2.addRoom(room11);


        HouseSpecifications hspec = new HouseSpecifications();
        HouseSpecIterator hsiter = new HouseSpecIterator();

        hsiter.iterateThroughHouses(hspec, house1);
        hspec.displayArea();
        hspec.displayRooms();
        hspec.clearState();

        hsiter.iterateThroughHouses(hspec, house2);
        hspec.displayArea();
        hspec.displayRooms();
        hspec.clearState();
    }

}
